import { BAIDU_MAP_WEB_AK } from './const.js';
const get_baidu_map_address = `https://api.map.baidu.com/reverse_geocoding/v3/?output=json&ak=${BAIDU_MAP_WEB_AK}&coordtype=wgs84ll&location=`; // 通过经纬度获取地址信息
const get_home_index = 'home/index'; // 获取首页数据
const get_sys_region_find_all_list = '/sys/region/findAllList'; // 查询所有提供点的区域
const get_search_leader = '/search/leader'; // 根据经纬度搜索提货点
const get_select_leader = 'user/leader/auth/selectLeader'; // 选择提货点
const get_categories = '/home/category'; // 获取分类
const get_search_sku = '/search/sku'; // 搜索商品
const get_home_item = '/home/item'; // 商品详情
const get_add_to_cart = '/cart/addToCart'; // 加入购物车
const get_cart_list = '/cart/cartList'; // 购物车列表
const get_check_cart = '/cart/checkCart'; // 切换购物车商品的选中状态
const delete_cart = '/cart/deleteCart'; // 删除购物车
const get_activity_cart_list = '/cart/activityCartList'; // 带活动的购物车列表
const get_check_all_cart = '/cart/checkAllCart'; // 对所有购物车商品进行全选/反选
const post_batch_check_cart = '/cart/batchCheckCart'; // 对指定的多个商品进行选择/反选
const get_find_all_sec_kill_time_list =
  '/activity/seckill/findAllSeckillTimeList'; // 从缓存中查询时间段列表
const get_find_sec_kill_sku_list = '/activity/seckill/findSeckillSkuList/'; // 从缓存中读取秒杀sku
const get_coupon_info = '/activity/auth/getCouponInfo/'; // 领取优惠券
const get_confirm_order = '/order/auth/confirmOrder'; // 确认订单
const post_submit_order = '/order/auth/submitOrder'; // 生成订单
const get_order_info = '/order/auth/getOrderInfoById'; // 订单详情
const get_wx_login = '/user/weixin/wxLogin'; // 微信用户登陆
const post_update_user = '/user/weixin/auth/updateUser'; // 更新用户信息
const get_weixin_payment = '/payment/weixin/createJsapi/'; // 获取微信支付信息
const get_find_user_order = '/order/auth/findUserOrderPage'; // 获取用户订单信息

const install = (Vue, vm) => {
  const limit = 10;
  const page = 1;

  // 获取首页数据
  const getHomeIndex = () => vm.$u.get(get_home_index);
  /*---------------------------------------------------------
		提货点模块
	---------------------------------------------------------*/
  // 根据经纬度获取地址信息
  const getBaiduMapAddress = (o) =>
    vm.$u.get(get_baidu_map_address + `${o.latitude},${o.longitude}`);
  // 查询所有提供点的区域
  const getSysRegionFindAllList = () =>
    vm.$u.get(get_sys_region_find_all_list, {
      showLoading: false,
    });
  // 根据经纬度搜索提货点
  const getSearchLeader = (o) =>
    vm.$u.get(get_search_leader + `/${o.page}/${o.limit}`, {
      ...o,
      showLoading: false,
    });
  // 选择提货点
  const getSelectLeader = (o) =>
    vm.$u.get(get_select_leader + `/${o.leaderId}`, {
      showLoading: false,
    });
  /*---------------------------------------------------------
		商品模块
	---------------------------------------------------------*/
  // 获取分类
  const getCategories = () =>
    vm.$u.get(get_categories, {
      showLoading: false,
    });
  // 搜索商品
  const getSearchSku = (o) =>
    vm.$u.get(get_search_sku + `/${o.page || page}/${o.limit || limit}`, {
      ...o,
      limit: o.limit || limit,
    });
  // 商品详情
  const getHomeItem = (o) => vm.$u.get(get_home_item + `/${o.skuId}`);
  /*---------------------------------------------------------
		秒杀模块
	---------------------------------------------------------*/
  // 从缓存中查询时间段列表
  const getFindAllSeckillTimeList = () =>
    vm.$u.get(get_find_all_sec_kill_time_list);
  // 从缓存中读取秒杀sku
  const getFindSeckillSkuList = (o) =>
    vm.$u.get(get_find_sec_kill_sku_list + `/${o.timeName}`);
  /*---------------------------------------------------------
		购物车模块
	---------------------------------------------------------*/
  // 加入购物车
  const getAddToCart = (o) =>
    vm.$u.get(get_add_to_cart + `/${o.skuId}/${o.skuNum}`, {
      showLoading: false,
    });
  // 购物车列表
  const getCartList = () => vm.$u.get(get_cart_list);
  // 切换购物车商品的选中状态
  const getCheckCart = (o) =>
    vm.$u.get(get_check_cart + `/${o.skuId}/${o.isChecked}`, {
      showLoading: false,
    });
  // 删除购物车
  const deleteCart = (skuId) =>
    vm.$u.delete(delete_cart + `/${skuId}`, {
      showLoading: false,
    });
  // 带活动的购物车列表
  const getActivityCartList = (o) =>
    vm.$u.get(get_activity_cart_list, {
      showLoading: o.showLoading ? o.showLoading : false,
    });
  // 对所有购物车商品进行全选/反选
  const getCheckAllCart = (o) =>
    vm.$u.get(get_check_all_cart + `/${o.isChecked}`, {
      showLoading: o.showLoading ? o.showLoading : false,
    });
  // 对指定的多个商品进行选择/反选
  const postBatchCheckCart = (o) =>
    vm.$u.post(post_batch_check_cart + `/${o.isChecked}`, o.skuIdList);
  // 领取优惠券
  const getCouponInfo = (o) => vm.$u.get(get_coupon_info + `/${o.id}`);
  // 确认订单
  const getConfirmOrder = () => vm.$u.get(get_confirm_order);
  // 生成订单
  const postSubmitOrder = (o) => vm.$u.post(post_submit_order, o);
  // 订单详情
  const getOrderInfo = (o) => vm.$u.get(get_order_info + `/${o.orderId}`);
  // 获取微信支付信息
  const getWxPayment = (o) => vm.$u.get(get_weixin_payment + `/${o.orderNo}`);
  /*---------------------------------------------------------
		用户登陆
	---------------------------------------------------------*/
  // 微信用户登陆
  const getWxLogin = (o) =>
    vm.$u.get(get_wx_login + `/${o.code}`, {
      showLoading: false,
    });
  // 更新用户信息
  const postUpdateUser = (o) =>
    vm.$u.post(post_update_user, {
      ...o,
      showLoading: false,
    });
  // 获取用户订单信息
  const getFindUserOrder = (o) =>
    vm.$u.get(get_find_user_order + `/${o.page}/${o.limit}`, {
      ...o,
    });
	// 将api挂载到实例上
  vm.$u.api = {
    getHomeIndex,
    getSysRegionFindAllList,
    getSearchLeader,
    getSelectLeader,
    getCategories,
    getSearchSku,
    getHomeItem,
    getAddToCart,
    getCartList,
    getCheckCart,
    deleteCart,
    getActivityCartList,
    getCheckAllCart,
    postBatchCheckCart,
    getBaiduMapAddress,
    getFindAllSeckillTimeList,
    getFindSeckillSkuList,
    getCouponInfo,
    getConfirmOrder,
    postSubmitOrder,
    getOrderInfo,
    getWxPayment,
    getWxLogin,
    postUpdateUser,
    getFindUserOrder,
  };
};

export default {
  install,
};